package com.southwind.springboottest.study.Java中通讯.http协议;

import com.sun.net.httpserver.HttpServer;
import com.sun.net.httpserver.HttpHandler;
import com.sun.net.httpserver.HttpExchange;
import java.io.IOException;
import java.io.OutputStream;

public class HttpServerExample {

    public static void main(String[] args) throws IOException {
        // 创建一个 HTTP 服务器，监听 8080 端口
        HttpServer server = HttpServer.create(new java.net.InetSocketAddress(8080), 0);

        // 创建一个上下文，当访问根路径时，使用 MyHandler 处理请求
        server.createContext("/", new MyHandler());

        // 设置默认的线程池执行器
        server.setExecutor(null);

        // 启动服务器
        server.start();
        System.out.println("HTTP Server started on port 8080");
    }

    static class MyHandler implements HttpHandler {
        @Override
        public void handle(HttpExchange exchange) throws IOException {
            // 设置响应内容
            String response = "Hello, HTTP!";

            // 发送响应头，状态码 200，响应体长度为响应内容的字节长度
            exchange.sendResponseHeaders(200, response.getBytes().length);

            // 获取输出流，将响应内容写入
            OutputStream os = exchange.getResponseBody();
            os.write(response.getBytes());

            // 关闭输出流
            os.close();
        }
    }
}

